package com.woniuxy.shop.dao;

import java.util.ArrayList;
import java.util.List;

import com.woniuxy.shop.entity.Admin;

/**
*@author 作者：
*version 创建时间：
*类说明：管理员Dao
*/
public class AdminDao {
	
	/**
	 * 增加管理员
	 * @param a
	 */
	public void add(Admin a) {
		String sql = "insert into shop_admin(account,password,role,lastlogintime,lastloginip,status) values(?,?,?,?,?,?)";
		Object[] obs = {a.getAccount(),a.getPassword(),a.getRole(),a.getLastlogintime(),a.getLastloginip(),a.getStatus()};
		DbHelper.excuteSQL(sql, obs);
	}
	
	/**
	 * 根据指定ID删除某个管理员
	 * @param ID
	 */
	public void delete(int id) {
		String sql = "delete from shop_admin where id=?";
		DbHelper.excuteSQL(sql, id);
	}
	
	/**
	 * 修改指定账号的密码
	 * @param account
	 * @param newPwd
	 */
	public void updatePassword(String account, String newPwd) {
		String sql = "update shop_admin set password=? where account=?";
		DbHelper.excuteSQL(sql, newPwd,account);
	}
	
	/**
	 * 更新管理员的账户，密码，角色，状态
	 * @param a
	 */
	public void updateAll(Admin a) {
		String sql  = "update shop_admin set account=?,password=?,role=?,status=? where id=?";
		Object[] obs = {a.getAccount(),a.getPassword(),a.getRole(),a.getStatus(),a.getId()};
		DbHelper.excuteSQL(sql, obs);
	}
	
	/**
	 * 更改指定用户的活跃状态
	 * @param newStatus
	 * @param account
	 */
	public void updateStatus(String newStatus,String account) {
		String sql = "update shop_admin set status=? where account=?";
		DbHelper.excuteSQL(sql, newStatus,account);
	}
	
	/**
	 * 查询所有的管理员信息
	 * @return 所有的管理员全部信息
	 */
	public  List<Admin> getAllAdmin(){
		List<Admin> admins = new ArrayList<>();
		String sql = "select * from shop_admin";
		admins = DbHelper.executeQuery(sql, Admin.class);
		return admins;
	}
	
	/**
	 * 根据账号查询管理员
	 * @return 所有的管理员全部信息
	 */
	public  List<Admin> getAdminByAct(String account){
		List<Admin> admins = new ArrayList<>();
		
		String sql = "select * from shop_admin where account=?";
		admins = DbHelper.executeQuery(sql, Admin.class,account);
		return admins;
	}
	
	/**
	 * 根据账号查询管理员
	 * @return 所有的管理员全部信息
	 */
	public  Admin getAdmin(String account){
		
		String sql = "select * from shop_admin where account=?";
		return DbHelper.executeQueryForSingleRow(sql, Admin.class, account);
	}
	
	/**
	 * 根据ID查询管理员
	 * @return 所有的管理员全部信息
	 */
	public  Admin getAdminById(int id){
		
		String sql = "select * from shop_admin where id=?";
		return DbHelper.executeQueryForSingleRow(sql, Admin.class, id);
	}
	
	/**
	 * 根据id更新ip和time
	 * @param id
	 * @param ip
	 * @param time
	 */
	public void updateIpTime(int id,String ip,String time) {
		String sql = "update shop_admin set lastloginip=?,lastlogintime=? where id=?";
		DbHelper.excuteSQL(sql, ip,time,id);
	}
	
}
